home *** CD-ROM | disk | FTP | other *** search
-
- {*******************************************************}
- { }
- { Delphi Visual Component Library }
- { }
- { Copyright (c) 1996,97 Borland International }
- { }
- {*******************************************************}
-
- unit OleCtnrs;
-
- interface
-
- uses Windows, Messages, CommCtrl, ActiveX, OleDlg, SysUtils, Classes,
- Controls, Forms, Menus, Graphics, ComObj;
-
- const
- ovShow = -1;
- ovOpen = -2;
- ovHide = -3;
- ovUIActivate = -4;
- ovInPlaceActivate = -5;
- ovDiscardUndoState = -6;
- ovPrimary = -65536;
-
- type
- TOleContainer = class;
- TOleForm = class;
-
- IVCLFrameForm = interface(IOleInPlaceFrame)
- ['{CD02E1C0-52DA-11D0-9EA6-0020AF3D82DA}']
- procedure AddContainer(Instance: TOleContainer);
- procedure RemoveContainer(Instance: TOleContainer);
- procedure ClearBorderSpace;
- function Form: TCustomForm;
- end;
-
- TAutoActivate = (aaManual, aaGetFocus, aaDoubleClick);
-
- TSizeMode = (smClip, smCenter, smScale, smStretch, smAutoSize);
-
- TObjectState = (osEmpty, osLoaded, osRunning, osOpen, osInPlaceActive,
- osUIActive);
-
- TCreateType = (ctNewObject, ctFromFile, ctLinkToFile, ctFromData,
- ctLinkFromData);
-
- TCreateInfo = record
- CreateType: TCreateType;
- ShowAsIcon: Boolean;
- IconMetaPict: HGlobal;
- ClassID: TCLSID;
- FileName: WideString;
- DataObject: IDataObject;
- end;
-
- TVerbInfo = record
- Verb: Smallint;
- Flags: Word;
- end;
-
- TObjectMoveEvent = procedure(OleContainer: TOleContainer;
- const Bounds: TRect) of object;
-
- TOleContainer = class(TCustomControl, IUnknown, IOleClientSite,
- IOleInPlaceSite, IAdviseSink, IOleDocumentSite, IOleUIObjInfo)
- protected
- procedure Changed; dynamic;
- procedure CreateParams(var Params: TCreateParams); override;
- procedure DblClick; override;
- procedure DefineProperties(Filer: TFiler); override;
- procedure DoEnter; override;
- function GetPopupMenu: TPopupMenu; override;
- procedure KeyDown(var Key: Word; Shift: TShiftState); override;
- procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
- X, Y: Integer); override;
- procedure Paint; override;
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- function ChangeIconDialog: Boolean;
- procedure Close;
- procedure Copy;
- procedure CreateLinkToFile(const FileName: string; Iconic: Boolean);
- procedure CreateObject(const OleClassName: string; Iconic: Boolean);
- procedure CreateObjectFromFile(const FileName: string; Iconic: Boolean);
- procedure CreateObjectFromInfo(const CreateInfo: TCreateInfo);
- procedure DestroyObject;
- procedure DoVerb(Verb: Integer);
- function GetIconMetaPict: HGlobal;
- function InsertObjectDialog: Boolean;
- procedure LoadFromFile(const FileName: string);
- procedure LoadFromStream(Stream: TStream);
- function ObjectPropertiesDialog: Boolean;
- procedure Paste;
- function PasteSpecialDialog: Boolean;
- procedure Run;
- procedure SaveAsDocument(const FileName: string);
- procedure SaveToFile(const FileName: string);
- procedure SaveToStream(Stream: TStream);
- procedure UpdateObject;
- procedure UpdateVerbs;
- property CanPaste: Boolean;
- property Linked: Boolean;
- property Modified: Boolean;
- property NewInserted: Boolean;
- property ObjectVerbs: TStrings;
- property OleClassName: string;
- property OleObject: Variant;
- property OleObjectInterface: IOleObject;
- property PrimaryVerb: Integer;
- property SourceDoc: string;
- property State: TObjectState;
- property StorageInterface: IStorage;
- published
- property AllowInPlace: Boolean default True;
- property AllowActiveDoc: Boolean default True;
- property AutoActivate: TAutoActivate default aaDoubleClick;
- property AutoVerbMenu: Boolean default True;
- property Align;
- property BorderStyle: TBorderStyle default bsSingle;
- property Caption;
- property Color;
- property CopyOnSave: Boolean default True;
- property Ctl3D;
- property DragCursor;
- property DragMode;
- property Enabled;
- property Iconic: Boolean;
- property OldStreamFormat: Boolean default False;
- property ParentColor default False;
- property ParentCtl3D;
- property ParentShowHint;
- property PopupMenu;
- property ShowHint;
- property SizeMode: TSizeMode default smClip;
- property TabOrder;
- property TabStop default True;
- property Visible;
- property OnActivate: TNotifyEvent;
- property OnDeactivate: TNotifyEvent;
- property OnDragDrop;
- property OnDragOver;
- property OnEndDrag;
- property OnEnter;
- property OnExit;
- property OnMouseDown;
- property OnMouseMove;
- property OnMouseUp;
- property OnKeyDown;
- property OnKeyPress;
- property OnKeyUp;
- property OnObjectMove: TObjectMoveEvent;
- property OnResize: TNotifyEvent;
- property OnStartDrag;
- end;
-
- TOleForm = class(TInterfacedObject, IOleForm, IOleWindow, IOleInPlaceUIWindow,
- IOleInPlaceFrame, IVCLFrameForm)
- public
- constructor Create(Form: TCustomForm);
- destructor Destroy; override;
- end;
-
- procedure DestroyMetaPict(MetaPict: HGlobal);
-
- implementation
-